Swift هي لغة برمجة حديثة وقوية طورتها Apple لتطوير تطبيقات iOS وmacOS. هذه الدورة مصممة لتأخذك من الصفر إلى الاحتراف، حيث تبدأ بالأساسيات مثل المتغيرات والدوال، وتنتهي بمفاهيم متقدمة مثل البرمجة المتزامنة وSwiftUI، مع أمثلة عملية لكل خطوة.
Swift هي لغة برمجة مفتوحة المصدر طورتها Apple في 2014، وهي بديل حديث لـ Objective-C.
print("مرحبًا بك في Swift!")
Swift يستخدم var
للمتغيرات وlet
للثوابت مع نظام أنواع قوي.
var name = "علي" // متغير
name = "أحمد"
let age = 25 // ثابت
print(name, age)
Swift يوفر أنواع بيانات قوية وآمنة.
let count: Int = 10
let height: Double = 1.75
let message: String = "مرحبًا"
let isActive: Bool = true
print(count, height, message, isActive)
التحكم في تدفق البرنامج باستخدام الشروط والتكرار.
let score = 85
if score >= 90 {
print("ممتاز")
} else {
print("جيد")
}
for i in 1...3 {
print("رقم: \(i)")
}
الدوال تُستخدم لتنظيم الكود وإعادة استخدامه.
func
.
func greet(person name: String) -> String {
return "مرحبًا، \(name)!"
}
let greeting = greet(person: "علي")
print(greeting)
Swift يوفر أنواعًا متعددة لتخزين البيانات.
var fruits = ["تفاح", "موز"]
var person = ["name": "علي", "age": "25"]
var numbers: Set = [1, 2, 3, 3]
print(fruits[0], person["name"]!, numbers)
الاختيارات تتعامل مع القيم التي قد تكون غائبة.
?
.!
لفرض القيمة أو if let
للفحص الآمن.
var optionalName: String? = "علي"
if let name = optionalName {
print("الاسم: \(name)")
} else {
print("لا يوجد اسم")
}
Swift يستخدم نظامًا قويًا لإدارة الأخطاء.
enum MathError: Error {
case divisionByZero
}
func divide(_ a: Int, by b: Int) throws -> Int {
if b == 0 { throw MathError.divisionByZero }
return a / b
}
do {
let result = try divide(10, by: 0)
print(result)
} catch {
print("خطأ: \(error)")
}
Swift يوفر طريقتين للبرمجة الكائنية.
struct Point {
var x = 0, y = 0
}
class Car {
var brand = "Toyota"
}
var point = Point(x: 5, y: 10)
let car = Car()
car.brand = "Honda"
print(point.x, car.brand)
البروتوكولات تُحدد متطلبات للكلاسات أو الهياكل.
protocol
.:
.
protocol Describable {
func describe() -> String
}
struct Book: Describable {
var title: String
func describe() -> String {
return "كتاب: \(title)"
}
}
let book = Book(title: "Swift")
print(book.describe())
الإغلاقات هي كتل كود مستقلة يمكن تمريرها.
{}
.
let sayHello = { (name: String) in
print("مرحبًا، \(name)!")
}
sayHello("علي")
Swift يدعم التعامل مع المهام المتعددة بأمان.
func fetchData() async -> String {
return "بيانات"
}
Task {
let data = await fetchData()
print(data)
}
SwiftUI هو إطار عمل حديث لبناء واجهات المستخدم.
import SwiftUI
struct ContentView: View {
@State private var counter = 0
var body: some View {
VStack {
Text("العدد: \(counter)")
Button("زيادة") { counter += 1 }
}
}
}
تطبيق عملي يجمع المفاهيم السابقة.
import SwiftUI
struct Task: Identifiable {
let id = UUID()
var title: String
var isCompleted = false
}
struct ContentView: View {
@State private var tasks = [Task]()
var body: some View {
NavigationView {
List {
ForEach(tasks) { task in
Text(task.title)
}
}
.navigationTitle("المهام")
.toolbar {
Button("إضافة") {
tasks.append(Task(title: "مهمة جديدة"))
}
}
}
}
}